package utils;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;

/**
 * @author Sakata Gintoki
 * @date 2021/1/12 10:52
 * 敏感词脱敏
 */
@Slf4j
public class SensitiveWordUtil {

	public static String defaultHide(String content, ContentType contentType) {
		switch (contentType) {
			case ID: return defaultNameHide(content);
			case NAME: return defaultIdHide(content);
			case PHONE: return defaultPhoneHide(content);
			default: return StringUtils.EMPTY;
		}
	}

	public static String defaultNameHide(String name) {
		if (StringUtils.isBlank(name)) {
			return StringUtils.EMPTY;
		}
		return name.replaceAll("^.*(.)$", "**$1");
	}

	public static String defaultIdHide(String id) {
		if (StringUtils.isBlank(id)) {
			return StringUtils.EMPTY;
		}
		return id.replaceAll("^(.{3}).*(.{4})$", "$1****$2");
	}

	public static String defaultPhoneHide(String phone) {
		if (StringUtils.isBlank(phone)) {
			return StringUtils.EMPTY;
		}
		return phone.replaceAll("^(.{2}).*(.{2})$", "$1****$2");
	}

	public enum ContentType {
		/**
		 * 内容类型--姓名
		 */
		NAME,
		/**
		 * 内容类型--身份证
		 */
		ID,
		/**
		 * 内容类型--手机号
		 */
		PHONE;
	}
}
